package com.huaxin.hxmoduleworkorder.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.huaxin.hxmoduleworkorder.dto.ResponseResult;
import com.huaxin.hxmoduleworkorder.dto.request.InspectionOrderCustomerCreateReqDTO;
import com.huaxin.hxmoduleworkorder.dto.response.GetInspectionOrderCustomerRespDTO;
import com.huaxin.hxmoduleworkorder.models.InspectionOrderCustomer;

import java.util.List;

public interface InspectionOrderCustomerService extends IService<InspectionOrderCustomer> {

    /**
     * 创建巡查工单客户关联
     *
     * @param in 创建参数
     * @return 创建结果
     */
    Boolean create(InspectionOrderCustomerCreateReqDTO in);

    /**
     * 批量创建巡查工单客户关联
     */
    Boolean batchCreate(List<InspectionOrderCustomerCreateReqDTO> customerIds);

    /**
     * 删除巡查工单客户关联
     *
     * @param orderId    工单ID
     * @param customerId 客户ID
     * @return 删除结果
     */
    Boolean delete(String orderId, String customerId);

    /**
     * 删除工单关联的工单客户
     *
     * @param orderId 工单ID
     * @return 删除结果
     */
    Boolean deleteByOrderId(String orderId);

    /**
     * 获取巡查任务关联客户信息
     *
     * @param orderId 工单ID
     * @return 工单关联客户信息
     */
    ResponseResult<Page<GetInspectionOrderCustomerRespDTO>> pageList(Integer pageNum, Integer pageSize, String orderId);
}
